package com.decorate.decorate;

public class Decorator extends Drink {

    //被装饰者
    //组合一下Coffee 到时候给到的肯定是一个具体的咖啡，可能是单品咖啡，也可能是包裹了小料的咖啡
    private Drink drink ;

    public Decorator(Drink drink){
        this.drink = drink;
    }

    //这里就等于是包衣服似的，在Drink上面包一层，
    //这个时候的Drink可能是单品咖啡，也可能是包裹了小料的咖啡
    @Override
    public float cost() {
        // super.getPrice() 指的是拿到自己的价格
        float cost =  super.getPrice() + drink.cost();
        return cost ;
    }

    @Override
    public String getDes() {
        return super.des +" "+  // super.des 这里拿到的其实是自己的描述
                super.getPrice() + //拿到的其实是自己的价格
                " && " + drink.getDes(); //拿到被装饰者的价格
    }
}
